\hypertarget{class_lib_u_s_b_1_1_interface_impl}{\section{Lib\-U\-S\-B\-:\-:Interface\-Impl Class Reference}
\label{class_lib_u_s_b_1_1_interface_impl}\index{Lib\-U\-S\-B\-::\-Interface\-Impl@{Lib\-U\-S\-B\-::\-Interface\-Impl}}
}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{class_lib_u_s_b_1_1_interface_impl_adc39b13c3b9ad9971f2cf4d747d18ce5}{{\bfseries Interface\-Impl} (const libusb\-\_\-interface $\ast$p\-Interface, std\-::weak\-\_\-ptr$<$ \hyperlink{class_lib_u_s_b_1_1_device_impl}{Device\-Impl} $>$ p\-Device\-Impl)}\label{class_lib_u_s_b_1_1_interface_impl_adc39b13c3b9ad9971f2cf4d747d18ce5}

\item 
\hyperlink{class_lib_u_s_b_1_1_interface_impl_ac39d098fbebc024d3f1a3b0ee7670007}{$\sim$\-Interface\-Impl} ()
\item 
\hypertarget{class_lib_u_s_b_1_1_interface_impl_a03d7483de08f48f1ce00fd89efac5827}{uint8\-\_\-t \hyperlink{class_lib_u_s_b_1_1_interface_impl_a03d7483de08f48f1ce00fd89efac5827}{Number} () const }\label{class_lib_u_s_b_1_1_interface_impl_a03d7483de08f48f1ce00fd89efac5827}

\begin{DoxyCompactList}\small\item\em Returns the interface number. \end{DoxyCompactList}\item 
\hypertarget{class_lib_u_s_b_1_1_interface_impl_a4a8737d90c753a33f3e14339c438a462}{uint8\-\_\-t \hyperlink{class_lib_u_s_b_1_1_interface_impl_a4a8737d90c753a33f3e14339c438a462}{Alternate\-Setting} () const }\label{class_lib_u_s_b_1_1_interface_impl_a4a8737d90c753a33f3e14339c438a462}

\begin{DoxyCompactList}\small\item\em Returns the alternate setting for this interface. \end{DoxyCompactList}\item 
\hypertarget{class_lib_u_s_b_1_1_interface_impl_a081dae4a2eb6df4ef6024d5349f34089}{uint8\-\_\-t \hyperlink{class_lib_u_s_b_1_1_interface_impl_a081dae4a2eb6df4ef6024d5349f34089}{Class} () const }\label{class_lib_u_s_b_1_1_interface_impl_a081dae4a2eb6df4ef6024d5349f34089}

\begin{DoxyCompactList}\small\item\em Returns the interface class. \end{DoxyCompactList}\item 
\hypertarget{class_lib_u_s_b_1_1_interface_impl_ab273906ca4e28180ea355291a75f7ee3}{uint8\-\_\-t \hyperlink{class_lib_u_s_b_1_1_interface_impl_ab273906ca4e28180ea355291a75f7ee3}{Sub\-Class} () const }\label{class_lib_u_s_b_1_1_interface_impl_ab273906ca4e28180ea355291a75f7ee3}

\begin{DoxyCompactList}\small\item\em Returns the interface Subclass. \end{DoxyCompactList}\item 
\hypertarget{class_lib_u_s_b_1_1_interface_impl_a154bcb2b59473c74b662684db819191f}{uint8\-\_\-t \hyperlink{class_lib_u_s_b_1_1_interface_impl_a154bcb2b59473c74b662684db819191f}{Protocol} () const }\label{class_lib_u_s_b_1_1_interface_impl_a154bcb2b59473c74b662684db819191f}

\begin{DoxyCompactList}\small\item\em Returns the interface Protocol. \end{DoxyCompactList}\item 
\hypertarget{class_lib_u_s_b_1_1_interface_impl_a561038e788c9292f252e4383398cd1a2}{std\-::wstring \hyperlink{class_lib_u_s_b_1_1_interface_impl_a561038e788c9292f252e4383398cd1a2}{Descriptor\-String} () const }\label{class_lib_u_s_b_1_1_interface_impl_a561038e788c9292f252e4383398cd1a2}

\begin{DoxyCompactList}\small\item\em Returns a string descriptor for this interface. \end{DoxyCompactList}\item 
\hypertarget{class_lib_u_s_b_1_1_interface_impl_a02737338ff031a77327fc54e4375e59a}{uint8\-\_\-t \hyperlink{class_lib_u_s_b_1_1_interface_impl_a02737338ff031a77327fc54e4375e59a}{Num\-Alternate\-Settings} () const }\label{class_lib_u_s_b_1_1_interface_impl_a02737338ff031a77327fc54e4375e59a}

\begin{DoxyCompactList}\small\item\em Returns the number of available alternate settings for this interface. \end{DoxyCompactList}\item 
\hypertarget{class_lib_u_s_b_1_1_interface_impl_a7bc22950574a6e53becd3305cc06d796}{void \hyperlink{class_lib_u_s_b_1_1_interface_impl_a7bc22950574a6e53becd3305cc06d796}{Claim} ()}\label{class_lib_u_s_b_1_1_interface_impl_a7bc22950574a6e53becd3305cc06d796}

\begin{DoxyCompactList}\small\item\em Claims this interface for use. \end{DoxyCompactList}\item 
\hypertarget{class_lib_u_s_b_1_1_interface_impl_a70b99c5ba75c199cf795d54bb425a6b0}{void \hyperlink{class_lib_u_s_b_1_1_interface_impl_a70b99c5ba75c199cf795d54bb425a6b0}{Release} ()}\label{class_lib_u_s_b_1_1_interface_impl_a70b99c5ba75c199cf795d54bb425a6b0}

\begin{DoxyCompactList}\small\item\em Releases this interface. \end{DoxyCompactList}\item 
\hypertarget{class_lib_u_s_b_1_1_interface_impl_a5bc5802fbdec9afc6b06ac1896aded0a}{bool \hyperlink{class_lib_u_s_b_1_1_interface_impl_a5bc5802fbdec9afc6b06ac1896aded0a}{is\-Claimed} () const }\label{class_lib_u_s_b_1_1_interface_impl_a5bc5802fbdec9afc6b06ac1896aded0a}

\begin{DoxyCompactList}\small\item\em Returns T\-R\-U\-E if the interface is claimed. \end{DoxyCompactList}\item 
void \hyperlink{class_lib_u_s_b_1_1_interface_impl_ad4ff414a8e5f576b4e03bad9a9c7f026}{Set\-Alternate} (uint8\-\_\-t \hyperlink{class_lib_u_s_b_1_1_interface_impl_a4a8737d90c753a33f3e14339c438a462}{Alternate\-Setting}=0)
\begin{DoxyCompactList}\small\item\em Selects an alternate interface setting. \end{DoxyCompactList}\item 
\hypertarget{class_lib_u_s_b_1_1_interface_impl_a860d06febe31d53c83e6634413ebc16f}{uint8\-\_\-t \hyperlink{class_lib_u_s_b_1_1_interface_impl_a860d06febe31d53c83e6634413ebc16f}{Num\-Endpoints} () const }\label{class_lib_u_s_b_1_1_interface_impl_a860d06febe31d53c83e6634413ebc16f}

\begin{DoxyCompactList}\small\item\em Returns the number of endpoints this interface/altsetting has. \end{DoxyCompactList}\item 
std\-::shared\-\_\-ptr$<$ \hyperlink{class_lib_u_s_b_1_1_endpoint}{Endpoint} $>$ \hyperlink{class_lib_u_s_b_1_1_interface_impl_a48711e334241d5cdc8264446ced1b880}{get\-Endpoint} (uint8\-\_\-t index)
\begin{DoxyCompactList}\small\item\em Returns the specified endpoint. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{class_lib_u_s_b_1_1_interface_impl_aaaf659898f5c20b7f5f581730a7bec1c}{void \hyperlink{class_lib_u_s_b_1_1_interface_impl_aaaf659898f5c20b7f5f581730a7bec1c}{Release\-Endpoints} ()}\label{class_lib_u_s_b_1_1_interface_impl_aaaf659898f5c20b7f5f581730a7bec1c}

\begin{DoxyCompactList}\small\item\em Resets all endpoints. \end{DoxyCompactList}\item 
\hypertarget{class_lib_u_s_b_1_1_interface_impl_acfa412a39f78e179080313f004552f2e}{void \hyperlink{class_lib_u_s_b_1_1_interface_impl_acfa412a39f78e179080313f004552f2e}{Create\-Endpoints} ()}\label{class_lib_u_s_b_1_1_interface_impl_acfa412a39f78e179080313f004552f2e}

\begin{DoxyCompactList}\small\item\em Creates all endpoint objects. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Constructor \& Destructor Documentation}
\hypertarget{class_lib_u_s_b_1_1_interface_impl_ac39d098fbebc024d3f1a3b0ee7670007}{\index{Lib\-U\-S\-B\-::\-Interface\-Impl@{Lib\-U\-S\-B\-::\-Interface\-Impl}!$\sim$\-Interface\-Impl@{$\sim$\-Interface\-Impl}}
\index{$\sim$\-Interface\-Impl@{$\sim$\-Interface\-Impl}!LibUSB::InterfaceImpl@{Lib\-U\-S\-B\-::\-Interface\-Impl}}
\subsubsection[{$\sim$\-Interface\-Impl}]{\setlength{\rightskip}{0pt plus 5cm}Lib\-U\-S\-B\-::\-Interface\-Impl\-::$\sim$\-Interface\-Impl (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}\label{class_lib_u_s_b_1_1_interface_impl_ac39d098fbebc024d3f1a3b0ee7670007}
We're not going to throw, in this particular situation. 

\subsection{Member Function Documentation}
\hypertarget{class_lib_u_s_b_1_1_interface_impl_a48711e334241d5cdc8264446ced1b880}{\index{Lib\-U\-S\-B\-::\-Interface\-Impl@{Lib\-U\-S\-B\-::\-Interface\-Impl}!get\-Endpoint@{get\-Endpoint}}
\index{get\-Endpoint@{get\-Endpoint}!LibUSB::InterfaceImpl@{Lib\-U\-S\-B\-::\-Interface\-Impl}}
\subsubsection[{get\-Endpoint}]{\setlength{\rightskip}{0pt plus 5cm}std\-::shared\-\_\-ptr$<$ {\bf Lib\-U\-S\-B\-::\-Endpoint} $>$ Lib\-U\-S\-B\-::\-Interface\-Impl\-::get\-Endpoint (
\begin{DoxyParamCaption}
\item[{uint8\-\_\-t}]{index}
\end{DoxyParamCaption}
)}}\label{class_lib_u_s_b_1_1_interface_impl_a48711e334241d5cdc8264446ced1b880}


Returns the specified endpoint. 

\begin{DoxyNote}{Note}
\#1 Validate endpoint number against its index. 
\end{DoxyNote}
\hypertarget{class_lib_u_s_b_1_1_interface_impl_ad4ff414a8e5f576b4e03bad9a9c7f026}{\index{Lib\-U\-S\-B\-::\-Interface\-Impl@{Lib\-U\-S\-B\-::\-Interface\-Impl}!Set\-Alternate@{Set\-Alternate}}
\index{Set\-Alternate@{Set\-Alternate}!LibUSB::InterfaceImpl@{Lib\-U\-S\-B\-::\-Interface\-Impl}}
\subsubsection[{Set\-Alternate}]{\setlength{\rightskip}{0pt plus 5cm}void Lib\-U\-S\-B\-::\-Interface\-Impl\-::\-Set\-Alternate (
\begin{DoxyParamCaption}
\item[{uint8\-\_\-t}]{Alternate\-Setting = {\ttfamily 0}}
\end{DoxyParamCaption}
)}}\label{class_lib_u_s_b_1_1_interface_impl_ad4ff414a8e5f576b4e03bad9a9c7f026}


Selects an alternate interface setting. 


\begin{DoxyParams}{Parameters}
{\em Alternate\-Setting} & (uint8\-\_\-t)\-: the index of the alternate setting to select/use. \\
\hline
\end{DoxyParams}

\begin{DoxyExceptions}{Exceptions}
{\em (std\-::logic\-\_\-error)} & if the alternate setting is out-\/of-\/range. \\
\hline
\end{DoxyExceptions}
\begin{DoxyNote}{Note}

\end{DoxyNote}
\begin{DoxySeeAlso}{See Also}
\hyperlink{class_lib_u_s_b_1_1_interface_impl_a02737338ff031a77327fc54e4375e59a}{Num\-Alternate\-Settings() const} 
\end{DoxySeeAlso}
\begin{DoxyWarning}{Warning}
If the interface is currently claimed, changing the alternate setting will affect the endpoints. 
\end{DoxyWarning}


The documentation for this class was generated from the following files\-:\begin{DoxyCompactItemize}
\item 
src/Interfaceimpl.\-h\item 
src/interfaceimpl.\-cpp\end{DoxyCompactItemize}
